package com.newtype.meeting.client.service;

import java.util.List;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.newtype.meeting.client.model.Meeting;
import com.newtype.meeting.client.model.MeetingNotify;
import com.newtype.meeting.client.model.MeetingRecord;
import com.newtype.meeting.client.model.MeetingReport;
import com.newtype.meeting.shared.MeetingNotifyDTO;

@RemoteServiceRelativePath("meetingService")
public interface MeetingService extends RemoteService {
	public void saveMeetingReport(MeetingReport meetingReport);

	public void saveMeetingRecord(MeetingRecord meetingRecord);

	public Meeting saveMeeting(Meeting meeting);

	public void cancelMeeting(String id);

	public void deleteMeeting(String id);

	public Meeting getMeeting(String id);

	public List<Meeting> listMeeting(String accountID);

	/** 获取由我发起的会议 */
	public List<Meeting> getMeetings(String accountID);

	public List<MeetingRecord> listMeetingRecord(String meetingID);

	public List<MeetingReport> listMeetingReport(String meetingID);

	public MeetingRecord getMeetingRecord(String id);

	public MeetingReport getMeetingReport(String id);

	public void deleteMeetingRecord(String id);

	public void deleteMeetingReport(String id);

	public void deleteAllMeetingRecord(String meetingID);

	public void deleteAllMeetingReport(String meetingID);

	/**
	 * 保存会议通知
	 * @param notify
	 */
	public void saveMeetingNotify(MeetingNotify notify);

	public MeetingNotify getMeetingNotify(String id);

	public List<MeetingNotifyDTO> listMeetingNotice(String accountID);

	/**
	 * 根据会议类型获取会议集合
	 * @param categoryID
	 * @return
	 */
	public List<Meeting> listMeetingByCategory(String categoryID);

	/**
	 * 根据会议ID获取会议通知人员信息
	 * @param meetingID 会议ID
	 * @return
	 */
	public List<MeetingNotifyDTO> listMeetingNotify(String meetingID);
}
